package main

import (
	"fmt"
	"math/rand"
)

func main() {
	Multiplication()    //九九乘法表
	randAithmetic()     //随机数算术
	fibonacciSequence() //斐波那契数列
}
func Multiplication() {
	//九九乘法表
	for i := 1; i < 10; i++ {
		for j := 1; j <= i; j++ {
			if i == j {
				fmt.Printf("%v%v%v%v%-2v\n", j, "*", i, "=", i*j)
			} else {
				fmt.Printf("%v%v%v%v%-3v", j, "*", i, "=", i*j)
			}
		}
	}
}

func randAithmetic() {
	//随机数算术
	sum := 0
	var product int64 = 1
	for i := 1; i <= 20; i++ {
		a := rand.Intn(20) + 1
		// fmt.Println(a)
		b := i % 2
		// fmt.Println(b)
		if b == 0 {
			sum += a
		} else {
			product *= int64(a)
		}
	}
	fmt.Printf("单数位和sum:%d\n", sum)
	fmt.Printf("双数位积product:%d\n", product)
}

func fibonacciSequence() {
	//斐波那契数列
	var (
		a = 0
		b = 1
	)
	fmt.Printf("%d ", a)
	for i := 0; i < 100; i++ {
		a, b = b, a+b
		// a = b
		// b = a + b
		fmt.Printf("%d ", a)
	}
}

// 阿飞老师的批改
// 1. 随机数rand模块使用之前要使用随机数种子进行初始化；
// 2. 单数个求和，偶数个求积，你这里刚好反过来了。
// 3. 100以内的斐波那契数列，不是第100个，第10太大，你这里使用的变量类型无法存储对应的数字；
